# LLM များကို ကျွမ်းကျင်ခြင်း[[mastering-llms]]

<CourseFloatingBanner
    chapter={7}
    classNames="absolute z-10 right-0 top-0"
/>

ဒီသင်တန်းကို ဒီအထိ လေ့လာနိုင်ခဲ့ရင် ဂုဏ်ယူပါတယ်။ အခု သင်ဟာ 🤗 Transformers နဲ့ Hugging Face ecosystem ကို အသုံးပြုပြီး (နီးပါး) မည်သည့် language task ကိုမဆို ဖြေရှင်းဖို့ လိုအပ်တဲ့ ဗဟုသုတနဲ့ ကိရိယာတွေအားလုံးကို ရရှိထားပါပြီ။

## NLP မှ LLM များဆီသို့

ဒီသင်တန်းမှာ ကျွန်တော်တို့ traditional NLP tasks များစွာကို ဖော်ပြခဲ့ပေမယ့်၊ ဒီနယ်ပယ်ကို Large Language Models (LLMs) တွေက တော်လှန်ပြောင်းလဲခဲ့ပါတယ်။ ဒီ models တွေက language processing မှာ ဖြစ်နိုင်ခြေတွေကို သိသိသာသာ ချဲ့ထွင်ခဲ့ပါတယ်-

- ၎င်းတို့ဟာ task-specific fine-tuning မလိုအပ်ဘဲ tasks များစွာကို ကိုင်တွယ်နိုင်ပါတယ်။
- ၎င်းတို့ဟာ ညွှန်ကြားချက်တွေကို လိုက်နာရာမှာနဲ့ မတူညီတဲ့ အခြေအနေတွေနဲ့ လိုက်လျောညီထွေဖြစ်အောင် လုပ်ဆောင်ရာမှာ ထူးချွန်ပါတယ်။
- ၎င်းတို့ဟာ မတူညီတဲ့ applications တွေအတွက် စနစ်တကျ၊ အခြေအနေနဲ့ကိုက်ညီတဲ့ text တွေကို ထုတ်လုပ်နိုင်ပါတယ်။
- ၎င်းတို့ဟာ chain-of-thought prompting လို နည်းလမ်းတွေကနေ reasoning လုပ်ပြီး ရှုပ်ထွေးတဲ့ ပြဿနာတွေကို ဖြေရှင်းနိုင်ပါတယ်။

သင်သင်ယူခဲ့တဲ့ အခြေခံ NLP skills တွေဟာ LLMs တွေနဲ့ ထိထိရောက်ရောက် အလုပ်လုပ်ဖို့အတွက် မရှိမဖြစ်လိုအပ်နေဆဲပါ။ tokenization၊ model architectures၊ fine-tuning approaches နဲ့ evaluation metrics တွေကို နားလည်ခြင်းက LLMs တွေကို အပြည့်အဝ အကျိုးယူနိုင်ဖို့ လိုအပ်တဲ့ ဗဟုသုတတွေကို ပံ့ပိုးပေးပါတယ်။

ကျွန်တော်တို့ data collators အမျိုးမျိုးကို တွေ့ခဲ့ရပြီးပြီဖြစ်တဲ့အတွက်၊ task တစ်ခုစီအတွက် ဘယ်ဟာကို အသုံးပြုရမလဲဆိုတာ ရှာဖွေနိုင်ဖို့ ဒီဗီဒီယိုလေးကို ကျွန်တော်တို့ ပြုလုပ်ပေးထားပါတယ်။

<Youtube id="-RPeakdlHYo"/>

core language tasks တွေကို လျင်မြန်စွာ လေ့လာပြီးနောက်၊ သင်ဟာ အောက်ပါတို့ကို သိရှိသင့်ပါတယ်။

*   Architecture အမျိုးအစား (encoder, decoder, ဒါမှမဟုတ် encoder-decoder) တွေထဲက ဘယ်ဟာက task တစ်ခုစီအတွက် အကောင်းဆုံးသင့်လျော်လဲ။
*   language model ကို pretraining လုပ်တာနဲ့ fine-tuning လုပ်တာကြားက ကွာခြားချက်ကို နားလည်ပါ။
*   သင်လိုက်နာခဲ့တဲ့ track ပေါ်မူတည်ပြီး `Trainer` API နဲ့ 🤗 Accelerate ရဲ့ distributed training features တွေ ဒါမှမဟုတ် TensorFlow နဲ့ Keras ကို အသုံးပြုပြီး Transformer models တွေကို ဘယ်လို train လုပ်ရမလဲ။
*   text generation tasks တွေအတွက် ROUGE နဲ့ BLEU လို metrics တွေရဲ့ အဓိပ္ပာယ်နဲ့ ကန့်သတ်ချက်တွေကို နားလည်ပါ။
*   Hub ပေါ်မှာရော 🤗 Transformers က `pipeline` ကို အသုံးပြုပြီးရော သင် fine-tune လုပ်ထားတဲ့ models တွေနဲ့ ဘယ်လို interact လုပ်ရမလဲ။
*   LLMs တွေက traditional NLP techniques တွေကို ဘယ်လိုအခြေခံပြီး ချဲ့ထွင်ထားတယ်ဆိုတာကို တန်ဖိုးထား နားလည်ပါ။

ဒီဗဟုသုတအားလုံး ရှိနေပေမယ့်လည်း၊ သင့် code မှာ ခက်ခဲတဲ့ bug တစ်ခုနဲ့ ကြုံတွေ့ရတာ ဒါမှမဟုတ် သီးခြား language processing problem တစ်ခုကို ဘယ်လိုဖြေရှင်းရမလဲဆိုတာ မေးခွန်းရှိလာတာမျိုး ဖြစ်လာနိုင်ပါတယ်။ ကံကောင်းစွာနဲ့ပဲ၊ Hugging Face community က သင့်ကို ကူညီဖို့ အသင့်ရှိပါတယ်။ သင်တန်းရဲ့ ဒီအပိုင်းရဲ့ နောက်ဆုံးအခန်းမှာ၊ သင့် Transformer models တွေကို ဘယ်လို debug လုပ်ရမလဲနဲ့ ထိထိရောက်ရောက် အကူအညီတောင်းရမလဲဆိုတာကို ကျွန်တော်တို့ လေ့လာသွားမှာပါ။

## ဝေါဟာရ ရှင်းလင်းချက် (Glossary)

*   **LLMs (Large Language Models)**: လူသားဘာသာစကားကို နားလည်ပြီး ထုတ်လုပ်ပေးနိုင်တဲ့ အလွန်ကြီးမားတဲ့ Artificial Intelligence (AI) မော်ဒယ်တွေ ဖြစ်ပါတယ်။ ၎င်းတို့ဟာ ဒေတာအမြောက်အမြားနဲ့ သင်ကြားလေ့ကျင့်ထားပြီး စာရေးတာ၊ မေးခွန်းဖြေတာ စတဲ့ ဘာသာစကားဆိုင်ရာ လုပ်ငန်းမျိုးစုံကို လုပ်ဆောင်နိုင်ပါတယ်။
*   **🤗 Transformers Library**: Hugging Face က ထုတ်လုပ်ထားတဲ့ library တစ်ခုဖြစ်ပြီး Transformer မော်ဒယ်တွေကို အသုံးပြုပြီး Natural Language Processing (NLP), computer vision, audio processing စတဲ့ နယ်ပယ်တွေမှာ အဆင့်မြင့် AI မော်ဒယ်တွေကို တည်ဆောက်ပြီး အသုံးပြုနိုင်စေပါတယ်။
*   **Hugging Face Ecosystem**: Hugging Face ကုမ္ပဏီမှ ဖန်တီးထားတဲ့ AI နဲ့ machine learning အတွက် ကိရိယာတွေ၊ library တွေ၊ မော်ဒယ်တွေနဲ့ platform တွေရဲ့ အစုအဝေးတစ်ခုပါ။
*   **NLP (Natural Language Processing)**: ကွန်ပျူတာတွေ လူသားဘာသာစကားကို နားလည်၊ အဓိပ္ပာယ်ဖော်ပြီး၊ ဖန်တီးနိုင်အောင် လုပ်ဆောင်ပေးတဲ့ Artificial Intelligence (AI) ရဲ့ နယ်ပယ်ခွဲတစ်ခုပါ။
*   **Traditional NLP Tasks**: Neural Networks များ မပေါ်မီက အသုံးပြုခဲ့သော Natural Language Processing (NLP) models များဖြင့် လုပ်ဆောင်ခဲ့သော လုပ်ငန်းများ (ဥပမာ- rule-based systems, statistical models)။
*   **Task-specific Fine-tuning**: သီးခြား task တစ်ခုအတွက်သာ model ကို ထပ်မံလေ့ကျင့်ခြင်း။
*   **Instructions**: LLM ကို လုပ်ဆောင်ရန် ညွှန်ကြားသော အမိန့်များ။
*   **Contexts**: LLM ကို အသုံးပြုသည့် အခြေအနေများ သို့မဟုတ် ပတ်ဝန်းကျင်။
*   **Generate Coherent Text**: ဆီလျော်မှုရှိပြီး နားလည်လွယ်သော စာသားကို ထုတ်လုပ်ခြင်း။
*   **Contextually Appropriate Text**: ပေးထားသော အခြေအနေ သို့မဟုတ် ခေါင်းစဉ်နှင့် ကိုက်ညီသော စာသား။
*   **Reasoning**: ဆင်ခြင်တုံတရားဖြင့် ပြဿနာများကို ဖြေရှင်းနိုင်စွမ်း။
*   **Chain-of-thought Prompting**: LLM ကို ပြဿနာဖြေရှင်းရာတွင် အဆင့်ဆင့် တွေးခေါ်စေရန် လမ်းညွှန်သော prompting နည်းလမ်း။
*   **Foundational NLP Skills**: NLP နယ်ပယ်တွင် မရှိမဖြစ်လိုအပ်သော အခြေခံကျွမ်းကျင်မှုများ။
*   **Tokenization**: စာသား (သို့မဟုတ် အခြားဒေတာ) ကို AI မော်ဒယ်များ စီမံဆောင်ရွက်နိုင်ရန် tokens တွေအဖြစ် ပိုင်းခြားပေးသည့် လုပ်ငန်းစဉ်။
*   **Model Architectures**: Model တစ်ခု၏ layers များနှင့် ၎င်းတို့ ချိတ်ဆက်ပုံကို ဖော်ပြသော ဒီဇိုင်းဖွဲ့စည်းပုံ။
*   **Fine-tuning Approaches**: Pretrained model တစ်ခုကို သီးခြား task တစ်ခုအတွက် ထပ်မံလေ့ကျင့်ရန် နည်းလမ်းများ။
*   **Evaluation Metrics**: Model ၏ စွမ်းဆောင်ရည်ကို တိုင်းတာရန် အသုံးပြုသော တန်ဖိုးများ (ဥပမာ- ROUGE, BLEU, F1 score)။
*   **Data Collators**: Dataset မှ input samples များကို batch တစ်ခုအဖြစ် စုစည်းပေးသော function များ။
*   **Core Language Tasks**: ဘာသာစကားနှင့် သက်ဆိုင်သော အဓိကလုပ်ငန်းများ (ဥပမာ- translation, summarization)။
*   **Architecture (Encoder, Decoder, Encoder-Decoder)**: Transformer Model ၏ အမျိုးအစားများ (input ကို နားလည်ရန် Encoder၊ output ကို ထုတ်လုပ်ရန် Decoder၊ နှစ်ခုလုံးပါဝင်ရန် Encoder-Decoder)။
*   **Pretraining**: Model တစ်ခုကို အကြီးစားဒေတာများဖြင့် အစောပိုင်းကတည်းက လေ့ကျင့်ထားခြင်း။
*   **Fine-tuning**: ကြိုတင်လေ့ကျင့်ထားပြီးသား (pre-trained) မော်ဒယ်တစ်ခုကို သီးခြားလုပ်ငန်းတစ်ခု (specific task) အတွက် အနည်းငယ်သော ဒေတာနဲ့ ထပ်မံလေ့ကျင့်ပေးခြင်း။
*   **Language Model**: လူသားဘာသာစကား၏ ဖြန့်ဝေမှုကို နားလည်ရန် လေ့ကျင့်ထားသော AI မော်ဒယ်တစ်ခု။
*   **`Trainer` API**: Hugging Face Transformers library မှ model များကို ထိရောက်စွာ လေ့ကျင့်ရန်အတွက် ဒီဇိုင်းထုတ်ထားသော မြင့်မားသောအဆင့် API။
*   **Distributed Training**: model တစ်ခုကို ကွန်ပျူတာ သို့မဟုတ် GPU များစွာဖြင့် တစ်ပြိုင်နက်တည်း လေ့ကျင့်ခြင်း။
*   **🤗 Accelerate**: Hugging Face က ထုတ်လုပ်ထားတဲ့ library တစ်ခုဖြစ်ပြီး PyTorch code တွေကို မတူညီတဲ့ training environment (ဥပမာ - GPU အများအပြား၊ distributed training) တွေမှာ အလွယ်တကူ run နိုင်အောင် ကူညီပေးပါတယ်။
*   **TensorFlow**: Google က ဖန်တီးထားတဲ့ open-source machine learning library တစ်ခုဖြစ်ပြီး deep learning မော်ဒယ်တွေ တည်ဆောက်ဖို့အတွက် အသုံးပြုပါတယ်။
*   **Keras**: TensorFlow library တွင် ပါဝင်သော မြင့်မားသောအဆင့် (high-level) API တစ်ခုဖြစ်ပြီး deep learning models များကို လွယ်ကူလျင်မြန်စွာ တည်ဆောက်ရန် အသုံးပြုသည်။
*   **ROUGE (Recall-Oriented Understudy for Gisting Evaluation)**: Summarization tasks များတွင် model ၏ output ကို အမှန်တကယ် summary (reference summary) များနှင့် နှိုင်းယှဉ်၍ အကဲဖြတ်သော metric။
*   **BLEU (Bilingual Evaluation Understudy)**: Machine translation tasks များတွင် model ၏ output ကို reference translation များနှင့် နှိုင်းယှဉ်၍ အကဲဖြတ်သော metric။
*   **Text Generation Tasks**: AI မော်ဒယ်များကို အသုံးပြု၍ လူသားကဲ့သို့သော စာသားအသစ်များ ဖန်တီးခြင်းနှင့် သက်ဆိုင်သော လုပ်ငန်းများ။
*   **Interact**: model ၏ input ကို ပေးပြီး output ကို ရယူခြင်း။
*   **`pipeline` Function**: Hugging Face Transformers library မှာ ပါဝင်တဲ့ လုပ်ဆောင်ချက်တစ်ခုဖြစ်ပြီး မော်ဒယ်တွေကို သီးခြားလုပ်ငန်းတာဝန်များ (ဥပမာ- စာသားခွဲခြားသတ်မှတ်ခြင်း၊ စာသားထုတ်လုပ်ခြင်း) အတွက် အသုံးပြုရလွယ်ကူအောင် ပြုလုပ်ပေးပါတယ်။
*   **Debug**: code တွင်ရှိသော အမှားများ (bugs) ကို ရှာဖွေပြီး ပြင်ဆင်ခြင်း။